A CDMA communication system uses Service Data Unit (SDU) frames to transmit and receive data. SDUs may use the Physical Layer Supplemental Channel (SCH) for transmission of data. An SDU frame may include a payload and a frame CRC (cyclical redundancy check) field. The frame CRC is used to detect errors in the payload. When using convolutional code, the multiplex sublayer may use Logical Transmission Units (LTUs) to assemble SCH SDUs. Each LTU includes a payload and a LTU CRC field. The LTU CRC field is used to detect errors in the LTU payload.
Referring to FIG. 1, a SCH SDU frame 10 is shown. The SDU frame 10 includes a number of LTUs 12a-12n and a frame CRC 14. Conventional systems use logic (normally part of a decoder) to compute the frame CRC for comparison to a received frame CRC. The decoder usually contains a sub-module that computes the frame CRC and normally supplies a signal that indicates a CRC passed/failed condition. Such a comparison gives an indication if the frame payload is valid or not valid. If the CRC comparison failed, the application may discard the whole frame and not process the frame.
Another conventional approach is to compute the LTU CRC using software. With such an apparatus, the LTU is discarded if there is not a match between the CRC fields. The software processes the LTU data if there is a match. A single invalid LTU 12a-12n causes the entire frame to have an invalid CRC field 14. A frame of data with an unmatched frame CRC field may still include one or more valid LTUs 12a-12n. Computing the LTU CRCs 16a-16n by a CPU consumes MIPS, and delays the processing of the LTU data until the CRC fields are compared.
It would be desirable to check the individual LTUs within a frame before discarding the frame to see if any of the LTUs are valid and may be used. It would also be desirable to check the LTU CRCs using hardware to discard invalid LTUs to reduce load placed on the processing software.